package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JOptionPane;

import java.awt.Color;
import java.util.ArrayList;

import javax.swing.SwingConstants;

import negocio.Clase;
import negocio.ClaseControlador;
import negocio.Cursada;
import negocio.CursadaControlador;
import negocio.Usuario;
import negocio.UsuarioControlador;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class AsignarResponsable extends JFrame {

	private JPanel contentPane;
	JComboBox comboResponsables;
	ArrayList<Usuario> responsables;
	Cursada cursada;
	ArrayList<Clase> clases;
	Cursadas padreCursadas;
	AsignarResponsable padreAsignarInstructor = this;
	Instructores instructores=null;
	
	public AsignarResponsable(Cursada cursada, Cursadas padreCursadas) {
		 addWindowListener(new WindowAdapter() {
             public void windowClosing(WindowEvent e){
                     padreCursadas.nullAsignarResponsable();
                     padreCursadas.llenarTabla();
             }
     });
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 320, 130);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		this.setTitle("Asignar Instructor");
		this.cursada=cursada;
		this.padreCursadas=padreCursadas;
		this.clases= ClaseControlador.getClases(cursada);
		
		JLabel lblResponsableAAsignar = new JLabel("Responsable a asignar:");
		lblResponsableAAsignar.setBounds(10, 11, 114, 14);
		contentPane.add(lblResponsableAAsignar);
		
		comboResponsables = new JComboBox();
		comboResponsables.setBounds(125, 8, 164, 20);
		contentPane.add(comboResponsables);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				padreCursadas.nullAsignarResponsable();
				padreCursadas.llenarTabla();
				dispose();
			}
		});
		btnCancelar.setBounds(199, 61, 89, 23);
		contentPane.add(btnCancelar);
		
		JButton btnAceptar = new JButton("Aceptar");
		btnAceptar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				if(comboResponsables.getSelectedIndex()!=-1)
				{
					CursadaControlador.setResponsable(cursada, responsables.get(comboResponsables.getSelectedIndex()));
					padreCursadas.nullAsignarResponsable();
					padreCursadas.llenarTabla();
					dispose();
				}
				JOptionPane.showMessageDialog(contentPane, "El responsable de la cursada seleccionada ha sido modificado.", "Asignacion de responsable", JOptionPane.INFORMATION_MESSAGE);
			}
		});
		btnAceptar.setBounds(100, 61, 89, 23);
		contentPane.add(btnAceptar);
		
		comboResponsables.removeAll();
		llenarComboResponsables();
	}
	
	public void llenarComboResponsables()
	{
		comboResponsables.removeAll();
		responsables=UsuarioControlador.getSupervisores();
		for (int i =0; i<responsables.size();)
		{
			if(responsables.get(i).getNombre().equalsIgnoreCase("Sistema"))
				responsables.remove(i);
			else
				i++;
		}
		for(Usuario r:responsables)
		{
			comboResponsables.addItem(r.getNombre()+" "+r.getApellido());
		}
		comboResponsables.setSelectedIndex(-1);
	}
}
